A web-based toolkit for analyzing SSL/TLS certificates, decoding PEM files, and decrypting private keys. All sensitive operations are performed client-side using JavaScript.
- Connect to any hostname and port to retrieve the SSL/TLS certificate chain
- Validates certificate installation and chain completeness
- Detects expired certificates, self-signed certs, and hostname mismatches
- OCSP and CRL revocation checking
- CDN/WAF detection (Akamai, Cloudflare, AWS, Azure, etc.)
- STARTTLS support for SMTP (25/587), FTP (21), and PostgreSQL (5432)
- Decode X.509 certificates and CSRs (Certificate Signing Requests)
- Supports RSA and ECDSA certificates
- Displays subject, issuer, validity, extensions, and SANs
- Processed entirely in-browser - your certificates never leave your device
- Remove password protection from encrypted private keys
- Supports PKCS#8, traditional RSA, and EC key formats
- Handles AES-128/256, 3DES, and DES encryption
- Processed entirely in-browser - your keys never leave your device
- Protocol support detection (SSL 2.0/3.0, TLS 1.0 - 1.3)
- Cipher suite enumeration with security ratings
- Security checks:
- Heartbleed (CVE-2014-0160)
- OpenSSL CCS Injection (CVE-2014-0224)
- Secure/Client-Initiated Renegotiation
- TLS Compression (CRIME attack)
- Downgrade Prevention (TLS_FALLBACK_SCSV)
- ROBOT Attack (informational)
- Weak Cipher Detection (RC4, DES, 3DES, NULL, EXPORT)
- Requires SSLyze on the server
cd src
php -S localhost:8000Open http://localhost:8000 in your browser.
docker build -t sslviewer .
docker run -p 8000:80 sslviewerOpen http://localhost:8000 in your browser.
- Modern web browser with JavaScript enabled
- No server required - can run from
file://or any static host
- PHP 8.0+ with OpenSSL and cURL extensions
- OpenSSL CLI (for STARTTLS connections)
- SSLyze (optional, for enhanced vulnerability scanning)
| Component | Technology |
|---|---|
| Frontend | HTML, JavaScript |
| Crypto Library | Forge.js |
| Backend | PHP 8.x |
| Vulnerability Scanner | SSLyze |
SSLViewer/
├── src/
│ ├── index.html # Main application UI
│ ├── verify-cert.php # Certificate chain retrieval API
│ ├── sslyze-scan.php # SSLyze vulnerability scan API
│ └── output.css # Compiled Tailwind CSS
├── Dockerfile # Docker container definition
- Client-side processing: PEM decoding and key decryption happen entirely in the browser using Forge.js. Private keys are never transmitted to the server.
- Server-side connections: The Chain Viewer connects to remote hosts from the server to retrieve certificates.
MIT License